

//引入events事件对象或者交事件触发器
var events = require('events');

// console.log(typeof events);//function



// es6继承

class Myevent extends events{};



// ES5继承
// apply和call只能修改指向，但不能达到继承的效果，也就是继承不了属性和方法
function Myeventdemo(){
    events.apply(this);
}

// console.log(typeof Myeventdemo);//function

//得到原型，可以继承
Myeventdemo.prototype = new events();

//把events对象的原型对象遍历一遍，把原型属性和方法复制
for(var i in events.prototype){
    Myeventdemo.prototype[i] = events.prototype[i];
}

Myeventdemo.hobby = ["睡觉","看书"];

var player = new Myevent();

//继承的原型的方法
// emit  发送事件
// on    监听事件
// once  监听一次




player.once('watch',()=>{
    console.log('I am watching TV');
});
// player.emit('watch');
// player.emit('watch');//once只监听一次


player.on('look',(msg)=>{
    console.log(msg);
});

// player.emit('look',"我想去走一走");
// player.emit('look',"我想去看一看");


